/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * BDIngresosConfigurar.java
 *
 * Created on 06/20/2011, 02:17:39 PM
 */
package org.gingresos.recibos;

import java.io.InputStream;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import javax.swing.table.DefaultTableModel;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;
import org.gingresos.clases.reportes.MyRecibosDetalles;
import org.gingresos.clases.reportes.MyTemporalRecibosDetalles;
import org.gingresos.searchs.jDialogContribuyentesSearch;
import org.gingresos.start.MySesion;
import org.sirmupadbapi.beans.*;
import org.sirmupadbapi.controller.*;
import org.sirmupadbapi.generales.Mensajeria;

/**
 *
 * @author avbravo
 */
public class RecibosPagos extends javax.swing.JInternalFrame {

    DefaultTableModel modelo;
    int fila = -1;
    Bicicles bicicletas1 = new Bicicles();
    BiciclesController bicicletasController1 = new BiciclesController();
    Codigosrecargo codigosrecargo1 = new Codigosrecargo();
    CodigosrecargoController codigosrecargoController1 = new CodigosrecargoController();
    Comercios comercios1 = new Comercios();
    ComerciosController comerciosController1 = new ComerciosController();
    Contribuyentes contribuyentes1 = new Contribuyentes();
    ContribuyentesController contribuyentesController1 = new ContribuyentesController();
    Corregimients corregimientos1 = new Corregimients();
    CorregimientsController corregimientosController1 = new CorregimientsController();
    Exoneraciones exoneraciones1 = new Exoneraciones();
    ExoneracionesController exoneracionesController1 = new ExoneracionesController();
    MyRecibosDetalles myRecibosDetalles1 = new MyRecibosDetalles();
    Morosidadmensual morosidadmensual1 = new Morosidadmensual();
    MorosidadmensualController morosidadmensualController1 = new MorosidadmensualController();
    Recargomensual recargomensual1 = new Recargomensual();
    RecargomensualController recargomensualController1 = new RecargomensualController();
    Recibes recibos1 = new Recibes();
    RecibesController recibosController1 = new RecibesController();
    Recibesnumeracion recibesnumeracion1 = new Recibesnumeracion();
    RecibesnumeracionController recibesnumeracionController1 = new RecibesnumeracionController();
    Recibesdetalles recibosDetalles1 = new Recibesdetalles();
    RecibesdetallesController recibosdetallesController1 = new RecibesdetallesController();
    Regimen regimen1 = new Regimen();
    RegimenController regimenController1 = new RegimenController();
    Regimencontribuyentes regimencontribuyentes1 = new Regimencontribuyentes();
    RegimencontribuyentesController regimencontribuyentesController1 = new RegimencontribuyentesController();
    Remolques remolques1 = new Remolques();
    RemolquesController remolquesController1 = new RemolquesController();
    Usuarios usuarios1 = new Usuarios();
    UsuariosController usuariosController1 = new UsuariosController();
    Vehicles vehiculos1 = new Vehicles();
    VehiclesController vehiculosController1 = new VehiclesController();
    Vigenciasexpiradas vigenciasexpiradas1 = new Vigenciasexpiradas();
    VigenciasexpiradasController vigenciasexpiradasController1 = new VigenciasexpiradasController();
    Integer idrecibo;
    Integer anioRecibo;
    String usuarioimprime;
    String cedula;
    String nombre, direccion, parametroplaca;
    String idcorregimiento;
    String idrecargo = "";
    List<MyRecibosDetalles> listMyRecibosDetalles = new ArrayList<MyRecibosDetalles>();
    List<MyTemporalRecibosDetalles> listMyTemporalRecibosDetalles = new ArrayList<MyTemporalRecibosDetalles>();

    /**
     * Creates new form BDIngresosConfigurar
     */
    public RecibosPagos() {
        initComponents();

        java.util.Calendar ca = java.util.Calendar.getInstance();

        java.sql.Date mydate = new java.sql.Date(ca.getTimeInMillis());

        anioRecibo = ca.get(java.util.Calendar.YEAR);
        jFormattedTextFieldFecha.setText(MySesion.formateadorFecha.format(mydate));
        modelo = (DefaultTableModel) jTable1.getModel();
        String sql = "idmunicipio='" + MySesion.getIdmunicipio() + "' and activo='si'";

        if (codigosrecargoController1.query(sql)) {
            for (Codigosrecargo codigosrecargo : codigosrecargoController1.getCodigosrecargolist()) {
                idrecargo = codigosrecargo.getIDREGIMENRECARGO();
            }
        }
        if (idrecargo.equals("")) {
            Mensajeria.Mensaje("No se ha creado los codigos de recargo");
            jButtonGuardar.setEnabled(false);
        }
        idrecibo = obtenerNumeroRecibo();
        jTextFieldRecibo.setText(idrecibo.toString());
        cargarExoneraciones();
        jTabbedPaneClientes.remove(jPanelComercios);
        jTabbedPaneClientes.remove(jPanelVehiculos);
        jTabbedPaneClientes.remove(jPanelRemolques);
        jTabbedPaneClientes.remove(jPanelBicicletas);
        jButtonGuardar.setEnabled(false);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        buttonGroupTipoPago = new javax.swing.ButtonGroup();
        buttonGroupExoneracion = new javax.swing.ButtonGroup();
        jDialogContribuyentes = new javax.swing.JDialog();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel1 = new javax.swing.JPanel();
        jButtonGuardar = new javax.swing.JButton();
        jButtonCerrar = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jLabel11 = new javax.swing.JLabel();
        jTextFieldTotalPagado = new javax.swing.JTextField();
        jLabel12 = new javax.swing.JLabel();
        jTextFieldTotalExonerado = new javax.swing.JTextField();
        jButtonLimpiar = new javax.swing.JButton();
        jPanelPago = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jComboBoxCliente = new javax.swing.JComboBox();
        jLabel2 = new javax.swing.JLabel();
        jTextFieldRecibo = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jFormattedTextFieldFecha = new javax.swing.JFormattedTextField();
        jCheckBoxPagoFijo = new javax.swing.JCheckBox();
        jCheckBoxPagoEventual = new javax.swing.JCheckBox();
        jTabbedPaneClientes = new javax.swing.JTabbedPane();
        jPanelContribuyentes = new javax.swing.JPanel();
        jLabel6 = new javax.swing.JLabel();
        jTextFieldCedulaContribuyente = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        jTextFieldContribuyente = new javax.swing.JTextField();
        jButtonBuscarContribuyentes = new javax.swing.JButton();
        jButtonConsultarContribuyente = new javax.swing.JButton();
        jLabel7 = new javax.swing.JLabel();
        jTextFieldDireccionContribuyente = new javax.swing.JTextField();
        jLabel8 = new javax.swing.JLabel();
        jTextFieldTelefonoContribuyente = new javax.swing.JTextField();
        jPanelComercios = new javax.swing.JPanel();
        jPanelVehiculos = new javax.swing.JPanel();
        jPanelRemolques = new javax.swing.JPanel();
        jPanelBicicletas = new javax.swing.JPanel();
        jComboBoxExoneracion = new javax.swing.JComboBox();
        jCheckBoxNoTieneExoneracion = new javax.swing.JCheckBox();
        jCheckBoxTieneExoneracion = new javax.swing.JCheckBox();
        jButtonAgregarImpuestosEventuales = new javax.swing.JButton();
        jLabel9 = new javax.swing.JLabel();
        jTextFieldComentario = new javax.swing.JTextField();
        jPanel2 = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();

        javax.swing.GroupLayout jDialogContribuyentesLayout = new javax.swing.GroupLayout(jDialogContribuyentes.getContentPane());
        jDialogContribuyentes.getContentPane().setLayout(jDialogContribuyentesLayout);
        jDialogContribuyentesLayout.setHorizontalGroup(
            jDialogContribuyentesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        jDialogContribuyentesLayout.setVerticalGroup(
            jDialogContribuyentesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        setClosable(true);
        setIconifiable(true);
        setMaximizable(true);
        setResizable(true);
        setTitle("Recibos de Pagos");

        jButtonGuardar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gingresos/resources/gif/print.png"))); // NOI18N
        jButtonGuardar.setToolTipText("Guardar");
        jButtonGuardar.setEnabled(false);
        jButtonGuardar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonGuardarActionPerformed(evt);
            }
        });

        jButtonCerrar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gingresos/resources/gif/return.png"))); // NOI18N
        jButtonCerrar.setToolTipText("Regresar");
        jButtonCerrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCerrarActionPerformed(evt);
            }
        });

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Codigo", "Regimen", "Deuda", "Pago", "Saldo", "Exoneracion", "Estatus", "Periodo", "Valor", "Morosidad", "Comentario"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Object.class, java.lang.Object.class, java.lang.Double.class, java.lang.Double.class, java.lang.Double.class, java.lang.Double.class, java.lang.Object.class, java.lang.Object.class, java.lang.Double.class, java.lang.Double.class, java.lang.Object.class
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }
        });
        jScrollPane1.setViewportView(jTable1);

        jLabel11.setText("Total Pagado");

        jLabel12.setText("Total Exonerado");

        jButtonLimpiar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gingresos/resources/gif/clear.png"))); // NOI18N
        jButtonLimpiar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonLimpiarActionPerformed(evt);
            }
        });

        jPanelPago.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jLabel1.setText("Cliente");

        jComboBoxCliente.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Contribuyentes", "Comercios", "Vehiculos", "Remolques", "Bicicletas", " " }));
        jComboBoxCliente.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBoxClienteActionPerformed(evt);
            }
        });

        jLabel2.setText("Recibo");

        jTextFieldRecibo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldReciboActionPerformed(evt);
            }
        });

        jLabel3.setText("Fecha");

        jLabel4.setText("Tipo");

        jFormattedTextFieldFecha.setEditable(false);
        jFormattedTextFieldFecha.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter(new java.text.SimpleDateFormat("dd/MM/yyyy"))));

        buttonGroupTipoPago.add(jCheckBoxPagoFijo);
        jCheckBoxPagoFijo.setSelected(true);
        jCheckBoxPagoFijo.setText("Pago Fijo");
        jCheckBoxPagoFijo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBoxPagoFijoActionPerformed(evt);
            }
        });

        buttonGroupTipoPago.add(jCheckBoxPagoEventual);
        jCheckBoxPagoEventual.setText("Pago Eventual");
        jCheckBoxPagoEventual.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBoxPagoEventualActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanelPagoLayout = new javax.swing.GroupLayout(jPanelPago);
        jPanelPago.setLayout(jPanelPagoLayout);
        jPanelPagoLayout.setHorizontalGroup(
            jPanelPagoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelPagoLayout.createSequentialGroup()
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextFieldRecibo, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jFormattedTextFieldFecha, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel4)
                .addGap(4, 4, 4)
                .addComponent(jCheckBoxPagoFijo)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jCheckBoxPagoEventual)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jLabel1)
                .addGap(18, 18, 18)
                .addComponent(jComboBoxCliente, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE))
        );
        jPanelPagoLayout.setVerticalGroup(
            jPanelPagoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelPagoLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelPagoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanelPagoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel2)
                        .addComponent(jTextFieldRecibo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel3)
                        .addComponent(jLabel4)
                        .addComponent(jFormattedTextFieldFecha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jCheckBoxPagoFijo))
                    .addGroup(jPanelPagoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel1)
                        .addComponent(jComboBoxCliente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jCheckBoxPagoEventual)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jLabel6.setText("Cedula");

        jTextFieldCedulaContribuyente.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldCedulaContribuyenteActionPerformed(evt);
            }
        });

        jLabel5.setText("Contribuyente");

        jTextFieldContribuyente.setEditable(false);

        jButtonBuscarContribuyentes.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gingresos/resources/gif/list.png"))); // NOI18N
        jButtonBuscarContribuyentes.setText("Buscar");
        jButtonBuscarContribuyentes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonBuscarContribuyentesActionPerformed(evt);
            }
        });

        jButtonConsultarContribuyente.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gingresos/resources/gif/search.gif"))); // NOI18N
        jButtonConsultarContribuyente.setText("Consultar");
        jButtonConsultarContribuyente.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonConsultarContribuyenteActionPerformed(evt);
            }
        });

        jLabel7.setText("Direccion");

        jTextFieldDireccionContribuyente.setEditable(false);

        jLabel8.setText("Telefono");

        jTextFieldTelefonoContribuyente.setEditable(false);

        javax.swing.GroupLayout jPanelContribuyentesLayout = new javax.swing.GroupLayout(jPanelContribuyentes);
        jPanelContribuyentes.setLayout(jPanelContribuyentesLayout);
        jPanelContribuyentesLayout.setHorizontalGroup(
            jPanelContribuyentesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelContribuyentesLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelContribuyentesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel5)
                    .addComponent(jLabel6)
                    .addComponent(jLabel7))
                .addGap(18, 18, 18)
                .addGroup(jPanelContribuyentesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanelContribuyentesLayout.createSequentialGroup()
                        .addComponent(jTextFieldDireccionContribuyente, javax.swing.GroupLayout.PREFERRED_SIZE, 427, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jLabel8)
                        .addGap(18, 18, 18)
                        .addComponent(jTextFieldTelefonoContribuyente, javax.swing.GroupLayout.DEFAULT_SIZE, 161, Short.MAX_VALUE))
                    .addGroup(jPanelContribuyentesLayout.createSequentialGroup()
                        .addGroup(jPanelContribuyentesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanelContribuyentesLayout.createSequentialGroup()
                                .addComponent(jTextFieldCedulaContribuyente, javax.swing.GroupLayout.PREFERRED_SIZE, 219, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(30, 30, 30)
                                .addComponent(jButtonConsultarContribuyente)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButtonBuscarContribuyentes))
                            .addComponent(jTextFieldContribuyente, javax.swing.GroupLayout.PREFERRED_SIZE, 410, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanelContribuyentesLayout.setVerticalGroup(
            jPanelContribuyentesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelContribuyentesLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelContribuyentesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel6)
                    .addComponent(jTextFieldCedulaContribuyente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButtonBuscarContribuyentes)
                    .addComponent(jButtonConsultarContribuyente))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelContribuyentesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldContribuyente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel5))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelContribuyentesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel7)
                    .addComponent(jTextFieldDireccionContribuyente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel8)
                    .addComponent(jTextFieldTelefonoContribuyente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jTabbedPaneClientes.addTab("Contribuyente", jPanelContribuyentes);

        javax.swing.GroupLayout jPanelComerciosLayout = new javax.swing.GroupLayout(jPanelComercios);
        jPanelComercios.setLayout(jPanelComerciosLayout);
        jPanelComerciosLayout.setHorizontalGroup(
            jPanelComerciosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 831, Short.MAX_VALUE)
        );
        jPanelComerciosLayout.setVerticalGroup(
            jPanelComerciosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 118, Short.MAX_VALUE)
        );

        jTabbedPaneClientes.addTab("Comercio", jPanelComercios);

        javax.swing.GroupLayout jPanelVehiculosLayout = new javax.swing.GroupLayout(jPanelVehiculos);
        jPanelVehiculos.setLayout(jPanelVehiculosLayout);
        jPanelVehiculosLayout.setHorizontalGroup(
            jPanelVehiculosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 831, Short.MAX_VALUE)
        );
        jPanelVehiculosLayout.setVerticalGroup(
            jPanelVehiculosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 118, Short.MAX_VALUE)
        );

        jTabbedPaneClientes.addTab("Vehiculo", jPanelVehiculos);

        javax.swing.GroupLayout jPanelRemolquesLayout = new javax.swing.GroupLayout(jPanelRemolques);
        jPanelRemolques.setLayout(jPanelRemolquesLayout);
        jPanelRemolquesLayout.setHorizontalGroup(
            jPanelRemolquesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 831, Short.MAX_VALUE)
        );
        jPanelRemolquesLayout.setVerticalGroup(
            jPanelRemolquesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 118, Short.MAX_VALUE)
        );

        jTabbedPaneClientes.addTab("Remolque", jPanelRemolques);

        javax.swing.GroupLayout jPanelBicicletasLayout = new javax.swing.GroupLayout(jPanelBicicletas);
        jPanelBicicletas.setLayout(jPanelBicicletasLayout);
        jPanelBicicletasLayout.setHorizontalGroup(
            jPanelBicicletasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 831, Short.MAX_VALUE)
        );
        jPanelBicicletasLayout.setVerticalGroup(
            jPanelBicicletasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 118, Short.MAX_VALUE)
        );

        jTabbedPaneClientes.addTab("Bicicleta", jPanelBicicletas);

        jComboBoxExoneracion.setEnabled(false);

        buttonGroupExoneracion.add(jCheckBoxNoTieneExoneracion);
        jCheckBoxNoTieneExoneracion.setSelected(true);
        jCheckBoxNoTieneExoneracion.setText("No tiene exoneracion");
        jCheckBoxNoTieneExoneracion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBoxNoTieneExoneracionActionPerformed(evt);
            }
        });

        buttonGroupExoneracion.add(jCheckBoxTieneExoneracion);
        jCheckBoxTieneExoneracion.setText("TieneExoneracion");
        jCheckBoxTieneExoneracion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBoxTieneExoneracionActionPerformed(evt);
            }
        });

        jButtonAgregarImpuestosEventuales.setText("Agregar Impuestos Eventuales");
        jButtonAgregarImpuestosEventuales.setEnabled(false);

        jLabel9.setText("Comentario");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jPanelPago, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addContainerGap()
                                .addComponent(jCheckBoxNoTieneExoneracion)
                                .addGap(9, 9, 9)
                                .addComponent(jCheckBoxTieneExoneracion)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jComboBoxExoneracion, javax.swing.GroupLayout.PREFERRED_SIZE, 253, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(18, 18, 18)
                                .addComponent(jButtonAgregarImpuestosEventuales))
                            .addComponent(jTabbedPaneClientes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(55, 55, 55)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addGap(24, 24, 24)
                                        .addComponent(jButtonGuardar, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jButtonLimpiar, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(jButtonCerrar, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jLabel11)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextFieldTotalPagado, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(jLabel12)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextFieldTotalExonerado, javax.swing.GroupLayout.PREFERRED_SIZE, 233, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jLabel9)
                                        .addGap(18, 18, 18)
                                        .addComponent(jTextFieldComentario, javax.swing.GroupLayout.PREFERRED_SIZE, 525, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                        .addGap(0, 82, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jPanelPago, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTabbedPaneClientes, javax.swing.GroupLayout.PREFERRED_SIZE, 155, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jComboBoxExoneracion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jCheckBoxNoTieneExoneracion)
                    .addComponent(jCheckBoxTieneExoneracion)
                    .addComponent(jButtonAgregarImpuestosEventuales))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 236, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel9)
                    .addComponent(jTextFieldComentario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(7, 7, 7)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel11)
                    .addComponent(jTextFieldTotalPagado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel12)
                    .addComponent(jTextFieldTotalExonerado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jButtonLimpiar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButtonGuardar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButtonCerrar, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Recibo", jPanel1);

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 948, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 636, Short.MAX_VALUE)
        );

        jTabbedPane1.addTab("Morosidad", jPanel2);

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 948, Short.MAX_VALUE)
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 636, Short.MAX_VALUE)
        );

        jTabbedPane1.addTab("Tarjeta de Pago", jPanel3);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jTabbedPane1)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 673, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jButtonGuardarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonGuardarActionPerformed
        try {

            HashMap map = new HashMap();
            Imprimir(listMyRecibosDetalles, map);

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "Imprimir()");
        }
    }//GEN-LAST:event_jButtonGuardarActionPerformed

    private void jButtonCerrarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCerrarActionPerformed
        // TODO add your handling code here:
        dispose();
    }//GEN-LAST:event_jButtonCerrarActionPerformed

    private void jTextFieldReciboActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldReciboActionPerformed
        ConsultarRecibo();
    }//GEN-LAST:event_jTextFieldReciboActionPerformed

    private void jButtonLimpiarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonLimpiarActionPerformed
        limpiar();
    }//GEN-LAST:event_jButtonLimpiarActionPerformed

    private void jButtonConsultarContribuyenteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonConsultarContribuyenteActionPerformed
        consultarContribuyentes();
    }//GEN-LAST:event_jButtonConsultarContribuyenteActionPerformed

    private void jCheckBoxNoTieneExoneracionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxNoTieneExoneracionActionPerformed
        jComboBoxExoneracion.setEnabled(false);
    }//GEN-LAST:event_jCheckBoxNoTieneExoneracionActionPerformed

    private void jCheckBoxTieneExoneracionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxTieneExoneracionActionPerformed
        jComboBoxExoneracion.setEnabled(true);
    }//GEN-LAST:event_jCheckBoxTieneExoneracionActionPerformed

    private void jTextFieldCedulaContribuyenteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldCedulaContribuyenteActionPerformed
        consultarContribuyentes();
    }//GEN-LAST:event_jTextFieldCedulaContribuyenteActionPerformed

    private void jComboBoxClienteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBoxClienteActionPerformed
        try {
            Integer i = jComboBoxCliente.getSelectedIndex();
            if (i != -1) {
                jTabbedPaneClientes.remove(jPanelContribuyentes);
                jTabbedPaneClientes.remove(jPanelComercios);
                jTabbedPaneClientes.remove(jPanelVehiculos);
                jTabbedPaneClientes.remove(jPanelRemolques);
                jTabbedPaneClientes.remove(jPanelBicicletas);
                String panel = jComboBoxCliente.getSelectedItem().toString();
                if (panel.equals("Contribuyentes")) {

                    jTabbedPaneClientes.addTab("Contribuyentes", jPanelContribuyentes);
                } else {
                    if (panel.equals("Comercios")) {
                        jTabbedPaneClientes.addTab("Comercio", jPanelComercios);
                    } else {
                        if (panel.equals("Vehiculos")) {
                            jTabbedPaneClientes.addTab("Vehiculos", jPanelVehiculos);
                        } else {
                            if (panel.equals("Remolques")) {
                                jTabbedPaneClientes.addTab("Remolques", jPanelRemolques);
                            } else {
                                if (panel.equals("Bicicletas")) {
                                    jTabbedPaneClientes.addTab("Bicicletas", jPanelBicicletas);
                                }
                            }
                        }
                    }
                }

            }

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "jComboBoxCliente()");
        }
    }//GEN-LAST:event_jComboBoxClienteActionPerformed

    private void jButtonBuscarContribuyentesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonBuscarContribuyentesActionPerformed
        jButtonGuardar.setEnabled(false);
        limpiarModelo();

        jDialogContribuyentesSearch jdcs = new jDialogContribuyentesSearch(null, true);
        jdcs.setSize(664, 480);
        jdcs.setLocationRelativeTo(this);
        jdcs.setVisible(true);

        jTextFieldCedulaContribuyente.setText(MySesion.getCedulaContribuyente());
        jTextFieldContribuyente.setText(MySesion.getNombreContribuyente());
        jTextFieldDireccionContribuyente.setText(MySesion.getDireccionContribuyente());
        jTextFieldTelefonoContribuyente.setText(MySesion.getTelefonoContribuyente());
        if (!jTextFieldCedulaContribuyente.getText().isEmpty()) {
            MySesion.setCedulaContribuyente(cedula);
            cargarImpuestosContribuyentes();
            jButtonGuardar.setEnabled(true);

        }

    }//GEN-LAST:event_jButtonBuscarContribuyentesActionPerformed

    private void jCheckBoxPagoFijoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxPagoFijoActionPerformed
        jButtonAgregarImpuestosEventuales.setEnabled(false);
    }//GEN-LAST:event_jCheckBoxPagoFijoActionPerformed

    private void jCheckBoxPagoEventualActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxPagoEventualActionPerformed
        jButtonAgregarImpuestosEventuales.setEnabled(true);
    }//GEN-LAST:event_jCheckBoxPagoEventualActionPerformed

    /**
     * @param args the command line arguments
     */
//    public static void main(String args[]) {
//        java.awt.EventQueue.invokeLater(new Runnable() {
//
//            public void run() {
//                new ServidorIngresosCrear().setVisible(true);
//            }
//        });
//    }
//    
    private void ConsultarRecibo() {
        try {

            limpiar();
            if (modelo != null) {
                while (modelo.getRowCount() > 0) {
                    modelo.removeRow(0);
                }
            }

            if (jTextFieldRecibo.equals("")) {
                Mensajeria.Mensaje("Ingrese el numero de recibo");
                return;
            }

            String sql = "idrecibo='" + jTextFieldRecibo.getText() + "' and idmunicipio='" + MySesion.getIdmunicipio() + "'";
            if (!recibosController1.query(sql)) {
                Mensajeria.Mensaje("No existe un recibo con ese numero");
                return;
            }
            recibos1 = recibosController1.getRecibeslist().get(0);
            if (recibos1.getAnulado().equals("si")) {
            } else {
            }
            jTextFieldTotalPagado.setText(String.valueOf(recibos1.getTotalpagado()));
            jTextFieldTotalExonerado.setText(String.valueOf(recibos1.getTotalexonerado()));
            Date fecha = recibos1.getFecha();
            String MyFecha = MySesion.formateadorFecha.format(fecha);
            jFormattedTextFieldFecha.setText(MyFecha);




            usuarios1.setUsername(recibos1.getIdusuario());
            Usuarios usuarios = usuariosController1.findByPrimaryKey(usuarios1);
            if (usuarios == null) {
                Mensajeria.Mensaje("No existe un usuario registrado que emitio el recibo");
                usuarioimprime = "";
            } else {
                usuarios1 = usuarios;
                usuarioimprime = usuarios1.getUsuario();
            }
            if (recibos1.getTipoid().equals("comercios")) {
                comercios1.setIDCOMERCIO(recibos1.getId());
                comercios1.setIDMUNICIPIO(MySesion.getIdmunicipio());
                CargarComercios();
                CargarRecibos();
                parametroplaca = "";


            } else {
                if (recibos1.getTipoid().equals("contribuyentes")) {
                    contribuyentes1.setCEDULA(recibos1.getId());
                    contribuyentes1.setIDMUNICIPIO(MySesion.getIdmunicipio());
                    consultarContribuyentes();
                    CargarRecibos();
                    parametroplaca = "";

                } else {
                    /*
                     * bicicletas
                     */
                    if (recibos1.getTipoid().equals("bicicletas")) {
                        CargarBicicletas();
                        CargarRecibos();

                    } else {
                        /*
                         * remolques
                         */
                        if (recibos1.getTipoid().equals("remolques")) {
                            CargarRemolques();
                            CargarRecibos();
                        } else {
                            if (recibos1.getTipoid().equals("vehiculos")) {
                                CargarVehiculos();
                                CargarRecibos();
                            }
                        }
                    }

                }


            }

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "ConsultarRecibo()");
        }
    }

    private void CargarComercios() {
        try {
            Comercios comercios = comerciosController1.findByPrimaryKey(comercios1);
            if (comercios == null) {
                Mensajeria.Mensaje("No existe un comercio con ese codigo: " + comercios1.getIDCOMERCIO());
                return;
            }
            comercios1 = comercios;

            nombre = comercios1.getCOMERCIO();
            jTextFieldCedulaContribuyente.setText(comercios1.getRUC());
            cedula = comercios1.getRUC();

            cargarDireccion(comercios1.getIDCORREGIMIENTO());
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "CargarComercios()");
        }
    }

    private void consultarContribuyentes() {
        try {
            limpiarModelo();
            jButtonGuardar.setEnabled(false);
            contribuyentes1.setCEDULA(jTextFieldCedulaContribuyente.getText());
            contribuyentes1.setIDMUNICIPIO(MySesion.getIdmunicipio());
            Contribuyentes contribuyentes = contribuyentesController1.findByPrimaryKey(contribuyentes1);
            if (contribuyentes == null) {
                Mensajeria.Mensaje("No existe un contribuyente con esa cedula: " + contribuyentes1.getCEDULA());
                return;
            }
            contribuyentes1 = contribuyentes;
            String activo = contribuyentes1.getACTIVO();
            activo = activo.toLowerCase();
            if (!activo.equals("si")) {
                Mensajeria.Mensaje("Este contribuyente no esta activo en el sistema....");
                return;
            }
            nombre = contribuyentes1.getCONTRIBUYENTE();
            jTextFieldCedulaContribuyente.setText(contribuyentes.getCEDULA());
            jTextFieldContribuyente.setText(contribuyentes1.getCONTRIBUYENTE());
            jTextFieldTelefonoContribuyente.setText(contribuyentes1.getTELEFONO());
            cedula = contribuyentes.getCEDULA();
            cargarDireccion(contribuyentes1.getIDCORREGIMIENTO());
            MySesion.setCedulaContribuyente(cedula);
            if (jCheckBoxPagoFijo.isSelected()) {
                cargarImpuestosContribuyentes();
            }

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "CargarContribuyentes()");
        }
    }

    private void CargarBicicletas() {
        try {

            bicicletas1.setIDBICICLETA(Long.parseLong(recibos1.getId()));
            bicicletas1.setIDMUNICIPIO(MySesion.getIdmunicipio());
            Bicicles bicicletas = bicicletasController1.findByPrimaryKey(bicicletas1);
            if (bicicletas == null) {
                Mensajeria.Mensaje("No existe una bicicleta con el codigo " + bicicletas1.getID());
                return;
            }
            bicicletas1 = bicicletas;
            parametroplaca = "PLACA: " + bicicletas.getPLACA();

            //Encontrar el dueño
            if (bicicletas1.getTIPOID().equals("contribuyentes")) {
                contribuyentes1.setCEDULA(bicicletas1.getID());
                contribuyentes1.setIDMUNICIPIO(MySesion.getIdmunicipio());
                consultarContribuyentes();
            } else {
                if (bicicletas1.getTIPOID().equals("comercios")) {
                    comercios1.setIDCOMERCIO(bicicletas1.getID());
                    comercios1.setIDMUNICIPIO(MySesion.getIdmunicipio());
                    CargarComercios();
                }
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "CargarBicicletas()");
        }

    }

    private void CargarRemolques() {
        try {
            remolques1.setID(recibos1.getId());
            remolques1.setIDMUNICIPIO(MySesion.getIdmunicipio());
            Remolques remolques = remolquesController1.findByPrimaryKey(remolques1);
            if (remolques == null) {
                Mensajeria.Mensaje("No existe un remolque con el codigo " + remolques1.getID());
                return;
            }
            remolques1 = remolques;
            parametroplaca = "PLACA: " + remolques1.getPLACA();

            //Encontrar el dueño
            if (remolques1.getTIPOID().equals("contribuyentes")) {
                contribuyentes1.setCEDULA(remolques1.getID());
                contribuyentes1.setIDMUNICIPIO(MySesion.getIdmunicipio());
                consultarContribuyentes();
            } else {
                if (remolques1.getTIPOID().equals("comercios")) {
                    comercios1.setIDCOMERCIO(remolques1.getID());
                    comercios1.setIDMUNICIPIO(MySesion.getIdmunicipio());
                    CargarComercios();
                }
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "CargarRemolques()");
        }
    }

    private void CargarVehiculos() {
        try {
            vehiculos1.setIDVEHICULO(Long.parseLong(recibos1.getId()));
            vehiculos1.setIDMUNICIPIO(MySesion.getIdmunicipio());
            Vehicles vehiculos = vehiculosController1.findByPrimaryKey(vehiculos1);

            if (vehiculos == null) {
                Mensajeria.Mensaje("No existe un vehiculos con el codigo " + vehiculos1.getID());
                return;
            }
            vehiculos1 = vehiculos;
            parametroplaca = "PLACA: " + vehiculos1.getPLACA();

            //Encontrar el dueño
            if (vehiculos1.getTIPOID().equals("contribuyentes")) {
                contribuyentes1.setCEDULA(vehiculos1.getID());
                contribuyentes1.setIDMUNICIPIO(MySesion.getIdmunicipio());
                consultarContribuyentes();
            } else {
                if (vehiculos1.getTIPOID().equals("comercios")) {
                    comercios1.setIDCOMERCIO(vehiculos1.getID());
                    comercios1.setIDMUNICIPIO(MySesion.getIdmunicipio());
                    CargarComercios();
                }
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "CargarVehiculos()");
        }
    }

    private void cargarDireccion(String idcorregimiento) {
        try {
            corregimientos1.setIdcorregimiento(idcorregimiento);
            Corregimients corregimients = corregimientosController1.findByPrimaryKey(corregimientos1);
            if (corregimients == null) {
                Mensajeria.Mensaje("No existe un corregimiento con el codigo " + corregimientos1.getIdcorregimiento());
                return;
            }

            corregimientos1 = corregimients;
            jTextFieldDireccionContribuyente.setText(corregimientos1.getCorregimiento());
            direccion = corregimientos1.getCorregimiento();

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "CargarDireccion()");
        }
    }

    private void CargarRecibos() {
        try {

            String sql = "idrecibo= '" + recibos1.getIdrecibo() + "' and idmunicipio='" + MySesion.getIdmunicipio() + "'";
            if (recibosdetallesController1.query(sql)) {
                Object[] filas = new Object[8];

                listMyRecibosDetalles.removeAll(listMyRecibosDetalles);
                String lidregimen = "";
                for (Recibesdetalles recibosdetalles : recibosdetallesController1.getRecibesdetalleslist()) {
                    regimen1.setIdregimen(recibosdetalles.getIdregimen());
                    regimen1.setIdmunicipio(recibosdetalles.getIdmunicipio());
                    filas[1] = recibosdetalles.getIdregimen();
                    lidregimen = recibosdetalles.getIdregimen();
                    if (recibosdetalles.getEsrecargo().equals("no")) {
                        filas[0] = new Boolean(false);
                    } else {

                        filas[0] = new Boolean(true);
                        filas[1] = idrecargo;
                        lidregimen = idrecargo;
                    }

                    Regimen regimen = regimenController1.findByPrimaryKey(regimen1);
                    if (regimen == null) {
                        Mensajeria.Mensaje("No existe un regimen con el codigo: " + regimen1.getIdregimen());
                        filas[2] = "";
                    } else {


                        filas[2] = regimen.getRegimen();
                       // listMyRecibosDetalles.add(new MyRecibosDetalles(nombre, direccion, MySesion.getMunicipio(), recibos1, recibosdetalles, regimen.getRegimen(), lidregimen));
                          listMyRecibosDetalles.add(new MyRecibosDetalles(nombre, direccion, 
                                MySesion.getMunicipio(), recibos1, regimen.getRegimen(), lidregimen,MySesion.Redondeo(recibosdetalles.getSaldoanterior()),
                                MySesion.Redondeo(recibosdetalles.getPago()),
                                MySesion.Redondeo(recibosdetalles.getExoneracion()),
                                MySesion.Redondeo(recibosdetalles.getSaldo())
                                , recibosdetalles.getComentario()));

                    }



                    filas[3] = MySesion.Redondeo(recibosdetalles.getSaldoanterior());
                    filas[4] = MySesion.Redondeo(recibosdetalles.getPago());
                    filas[5] = MySesion.Redondeo(recibosdetalles.getExoneracion());
                    filas[6] = MySesion.Redondeo(recibosdetalles.getSaldo());

                    filas[7] = recibosdetalles.getComentario();
                    modelo.addRow(filas);
                }

            } else {
                Mensajeria.Mensaje("No existen registros de detalles de recibos con ese numero");
                return;
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "CargarDireccion()");
        }

    }

    private void limpiar() {

        jTextFieldCedulaContribuyente.setText("");
        jTextFieldContribuyente.setText("");
        jTextFieldDireccionContribuyente.setText("");
        jTextFieldTelefonoContribuyente.setText("");
        jTextFieldTotalExonerado.setText("");
        jTextFieldTotalPagado.setText("");

    }

    private void Imprimir(List<MyRecibosDetalles> aux, HashMap map) throws JRException {
        try {
            map.put("P_NOMBREUSUARIO", usuarioimprime);
            map.put("P_CEDULARUC", cedula);
            map.put("P_PLACA", parametroplaca);
            JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(aux);
            InputStream reporte = (InputStream) getClass().getResourceAsStream("/org/gingresos/reportes/recibos/Recibos.jasper");
            if (reporte == null) {
                Mensajeria.Mensaje("No se pudo cargar el reporte");
            } else {
                JasperPrint print = JasperFillManager.fillReport(reporte, map, ds);
                JasperViewer.viewReport(print, false);
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "Imprimir()");
        }
    }

    private Integer obtenerNumeroRecibo() {
        try {
            return recibesnumeracionController1.func("max", "idrecibo").intValue() + 1;

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "obtenerNumeroRecibo()");
        }
        return 0;
    }

    public void cargarExoneraciones() {
        try {

            jComboBoxExoneracion.removeAllItems();
            String sql = "idmunicipio='" + MySesion.getIdmunicipio() + "' and activo='si' and year(fechaexoneracion)='" + anioRecibo + "'";
            if (exoneracionesController1.query(sql)) {
                for (Exoneraciones e : exoneracionesController1.getExoneracioneslist()) {
                    jComboBoxExoneracion.addItem(e.getIDEXONERACION());
                }
            }


        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "cargarExoneraciones()");
        }
    }

    private void cargarImpuestosContribuyentes() {
        try {
            if (jCheckBoxPagoFijo.isSelected()) {
                /*
                 * cargar los impuestos
                 */
                String sql = "idmunicipio='" + MySesion.getIdmunicipio() + "' and activo='si' and cedula='" + jTextFieldCedulaContribuyente.getText() + "'";
                if (regimencontribuyentesController1.query(sql)) {
//                    for (Regimencontribuyentes rc : regimencontribuyentesController1.getRegimencontribuyenteslist()) {
//                        
//                    }
                }
                /*
                 * cargar la morosidad mensual
                 */
                sql = "idmunicipio='" + MySesion.getIdmunicipio() + "' and id='" + jTextFieldCedulaContribuyente.getText() + "' and tipoid ='contribuyentes' and anio='" + this.anioRecibo + "'";
                if (morosidadmensualController1.query(sql)) {
//                    for (Morosidadmensual m : morosidadmensualController1.getMorosidadmensuallist()) {
//                    }
                }
                /*
                 * recargo
                 */
                sql = "idmunicipio='" + MySesion.getIdmunicipio() + "' and id='" + jTextFieldCedulaContribuyente.getText() + "' and recargoactual > 0 and tipoid ='contribuyentes' and anio='" + this.anioRecibo + "'";
                if (recargomensualController1.query(sql)) {
//                    for (Recargomensual rm : recargomensualController1.getRecargomensuallist()) {
//                    }
                }
                /*
                 * Vigencias expiradas
                 */

                sql = "idmunicipio='" + MySesion.getIdmunicipio() + "' and id='" + jTextFieldCedulaContribuyente.getText() + "' and morosidadactual > '0.0' and tipoid ='contribuyentes' and anio='" + this.anioRecibo + "'";
                if (vigenciasexpiradasController1.query(sql)) {
//                    for (Vigenciasexpiradas ve : vigenciasexpiradasController1.getVigenciasexpiradaslist()) {
//                    }
                }
                /*
                 * verificamos si el contribuyente tiene impuestos
                 */
                if (!regimencontribuyentesController1.getRegimencontribuyenteslist().isEmpty()) {
                    cargarImpuestosMorosidad();
                } else {
                    cargarSoloMorosidad();
                }
                if (!recargomensualController1.getRecargomensuallist().isEmpty()) {
                    cargarSoloRecargo();
                }
                if (!vigenciasexpiradasController1.getVigenciasexpiradaslist().isEmpty()) {
                    cargarSoloVigencias();
                }
            }


        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "cargarImpuestosContribuyentes()");
        }
    }

    private void limpiarModelo() {
        try {
            modelo = MySesion.limpiarModelo(modelo);
            listMyTemporalRecibosDetalles.removeAll(listMyRecibosDetalles);

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "cargarImpuestosContribuyentes()");
        }

    }
/*
 * carga los impuestos y verifica su morosidad
 */
    private void cargarImpuestosMorosidad() {
        try {
                for (Morosidadmensual m : morosidadmensualController1.getMorosidadmensuallist()) {
                    
                    /*
                     * 0. verificar pagos mensuales si es mensual
                     */
                    /*
                     *1. verificar si era pago anualy si pago
                     */
                    
                    /*
                     * 2. compararlo con los registros de morosidad
                     */
                    
                    /*
                     * 3. agregarlo a la lista
                     */
//                    MyTemporalRecibosDetalles mtr = new MyTemporalRecibosDetalles();
//                    mtr.setIdregimen(m.getIdregimen());
//                    mtr.setRegimen(getNombreRegimen(m.getIdregimen()));
//                    mtr.setDeuda(m.getSaldoactual());
//                    mtr.setPago(0.0);
//                    mtr.setSaldo(m.getSaldoactual());
//                    mtr.setExoneracion(0.0);
//                    mtr.setEstatus("morosidad");
//                    mtr.setPeriodo("morosidad");
//                    mtr.setValor(0.0);
//                    mtr.setMorosidad(m.getSaldoactual());
//                    mtr.setComentario("");
//                    listMyTemporalRecibosDetalles.add(mtr);
                }
        
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "cargarImpuestosMorosidad()");
        }

    }
    /*
     * carga la morosidad solamente
     */

    private void cargarSoloMorosidad() {
        try {
            if (!morosidadmensualController1.getMorosidadmensuallist().isEmpty()) {
                for (Morosidadmensual m : morosidadmensualController1.getMorosidadmensuallist()) {
                    MyTemporalRecibosDetalles mtr = new MyTemporalRecibosDetalles();
                    mtr.setIdregimen(m.getIdregimen());
                    mtr.setRegimen(getNombreRegimen(m.getIdregimen()));
                    mtr.setDeuda(m.getSaldoactual());
                    mtr.setPago(0.0);
                    mtr.setSaldo(m.getSaldoactual());
                    mtr.setExoneracion(0.0);
                    mtr.setEstatus("morosidad");
                    mtr.setPeriodo("morosidad");
                    mtr.setValor(0.0);
                    mtr.setMorosidad(m.getSaldoactual());
                    mtr.setComentario("");
                    listMyTemporalRecibosDetalles.add(mtr);
                }
            }

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "cargarSoloMorosidad()");
        }
    }

    /*
     * carga solo el recargo
     */
    private void cargarSoloRecargo() {
        try {
            if (!morosidadmensualController1.getMorosidadmensuallist().isEmpty()) {
                for (Recargomensual rm : recargomensualController1.getRecargomensuallist()) {
                    MyTemporalRecibosDetalles mtr = new MyTemporalRecibosDetalles();
                    mtr.setIdregimen(rm.getIdregimen());
                    mtr.setRegimen(getNombreRegimen(rm.getIdregimen()));
                    mtr.setDeuda(rm.getRecargoactual());
                    mtr.setPago(0.0);
                    mtr.setSaldo(rm.getRecargoactual());
                    mtr.setExoneracion(0.0);
                    mtr.setEstatus("recargo");
                    mtr.setPeriodo("recargo");
                    mtr.setValor(0.0);
                    mtr.setMorosidad(0.0);
                    mtr.setComentario("");
                    listMyTemporalRecibosDetalles.add(mtr);
                }

            }

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "cargarSoloMorosidad()");
        }
    }

    private void cargarSoloVigencias() {
        try {
            if (!vigenciasexpiradasController1.getVigenciasexpiradaslist().isEmpty()) {
                for (Vigenciasexpiradas ve : vigenciasexpiradasController1.getVigenciasexpiradaslist()) {
                    MyTemporalRecibosDetalles mtr = new MyTemporalRecibosDetalles();
                    mtr.setIdregimen(ve.getIdregimen());
                    mtr.setRegimen(getNombreRegimen(ve.getIdregimen()));
                    mtr.setDeuda(ve.getMorosidadactual());
                    mtr.setPago(0.0);
                    mtr.setSaldo(ve.getMorosidadactual());
                    mtr.setExoneracion(0.0);
                    mtr.setEstatus("vigencias expiradas");
                    mtr.setPeriodo("vigencias expiradas");
                    mtr.setValor(0.0);
                    mtr.setMorosidad(0.0);
                    mtr.setComentario("");
                    listMyTemporalRecibosDetalles.add(mtr);
                }

            }

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "cargarSoloMorosidad()");
        }
    }

    private void agregarFila() {
        try {
            for (MyTemporalRecibosDetalles mtrd : listMyTemporalRecibosDetalles) {
                Object[] filas = new Object[11]; // Hay tres columnas en la tabla
                filas[0] = mtrd.getIdregimen();
                filas[1] = mtrd.getRegimen();
                filas[2] = mtrd.getDeuda();
                filas[3] = mtrd.getPago();
                filas[4] = mtrd.getSaldo();
                filas[5] = mtrd.getExoneracion();
                filas[6] = mtrd.getEstatus();
                filas[7] = mtrd.getPeriodo();
                filas[8] = mtrd.getValor();
                filas[9] = mtrd.getMorosidad();
                filas[10] = mtrd.getComentario();
                modelo.addRow(filas);
            }

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "agregarFila()");
        }
    }

    /*
     * Devuelve el nombre del regimen
     */
    private String getNombreRegimen(String idregimen) {
        try {
            regimen1.setIdmunicipio(MySesion.getIdmunicipio());
            regimen1.setIdregimen(idregimen);
            Regimen regimen2 = regimenController1.findByPrimaryKey(regimen1);
            if (regimen2 != null) {
                return regimen2.getRegimen();

            } else {
                return "";
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "getNombreRegimen()");
        }
        return null;
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.ButtonGroup buttonGroupExoneracion;
    private javax.swing.ButtonGroup buttonGroupTipoPago;
    private javax.swing.JButton jButtonAgregarImpuestosEventuales;
    private javax.swing.JButton jButtonBuscarContribuyentes;
    private javax.swing.JButton jButtonCerrar;
    private javax.swing.JButton jButtonConsultarContribuyente;
    private javax.swing.JButton jButtonGuardar;
    private javax.swing.JButton jButtonLimpiar;
    private javax.swing.JCheckBox jCheckBoxNoTieneExoneracion;
    private javax.swing.JCheckBox jCheckBoxPagoEventual;
    private javax.swing.JCheckBox jCheckBoxPagoFijo;
    private javax.swing.JCheckBox jCheckBoxTieneExoneracion;
    private javax.swing.JComboBox jComboBoxCliente;
    private javax.swing.JComboBox jComboBoxExoneracion;
    private javax.swing.JDialog jDialogContribuyentes;
    private javax.swing.JFormattedTextField jFormattedTextFieldFecha;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanelBicicletas;
    private javax.swing.JPanel jPanelComercios;
    private javax.swing.JPanel jPanelContribuyentes;
    private javax.swing.JPanel jPanelPago;
    private javax.swing.JPanel jPanelRemolques;
    private javax.swing.JPanel jPanelVehiculos;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTabbedPane jTabbedPaneClientes;
    private javax.swing.JTable jTable1;
    private javax.swing.JTextField jTextFieldCedulaContribuyente;
    private javax.swing.JTextField jTextFieldComentario;
    private javax.swing.JTextField jTextFieldContribuyente;
    private javax.swing.JTextField jTextFieldDireccionContribuyente;
    private javax.swing.JTextField jTextFieldRecibo;
    private javax.swing.JTextField jTextFieldTelefonoContribuyente;
    private javax.swing.JTextField jTextFieldTotalExonerado;
    private javax.swing.JTextField jTextFieldTotalPagado;
    // End of variables declaration//GEN-END:variables
}
